#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
=============================================================================
依赖管理工具 (dependency_manager.py)
=============================================================================

📁 文件说明：
  - Python依赖包管理和诊断工具
  - 用于检查、对比和同步不同环境的依赖版本
  - 帮助识别和解决依赖冲突问题

🎯 功能特性：
  - 生成当前环境的完整依赖列表
  - 检查关键包的版本信息
  - 诊断依赖冲突和兼容性问题
  - 提供环境间依赖对比功能

📋 使用方法：
  1. 在项目根目录下运行：python scripts/dependency_manager.py
  2. 脚本会自动检查关键依赖包状态
  3. 生成requirements_current.txt供对比分析

🔧 适用场景：
  - 开发环境与生产环境依赖同步
  - 新团队成员环境配置验证
  - 依赖升级前的兼容性检查
  - 生产部署前的依赖验证

⚠️  注意事项：
  - 请在激活虚拟环境后运行
  - 生成的requirements_current.txt仅供参考
  - 建议定期运行以保持环境同步

作者：AI Assistant
版本：1.0.0
更新：2025-09-03
=============================================================================
"""

import subprocess
import sys
import os

def run_command(cmd, description):
    """运行命令并显示结果"""
    print(f"\n🔄 {description}...")
    try:
        result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
        if result.returncode == 0:
            print(f"✅ {description} 成功")
            if result.stdout:
                print(result.stdout)
        else:
            print(f"❌ {description} 失败")
            print(result.stderr)
            return False
    except Exception as e:
        print(f"❌ {description} 出错: {e}")
        return False
    return True

def main():
    """主函数"""
    print("🚀 依赖管理工具")
    print("1. 更新开发环境requirements.txt")
    print("2. 安装服务器核心依赖")
    print("3. 检查依赖冲突")
    
    # 生成当前环境的requirements
    if run_command("pip freeze > requirements_current.txt", "生成当前环境依赖列表"):
        print("📝 已生成 requirements_current.txt")
    
    # 检查关键包版本
    key_packages = ['Flask', 'SQLAlchemy', 'cryptography', 'pandas', 'waitress']
    print("\n🔍 关键包版本检查:")
    for package in key_packages:
        run_command(f"pip show {package}", f"检查 {package}")

if __name__ == "__main__":
    main()
